.TH std::basic_filebuf::close 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::basic_filebuf::close \- std::basic_filebuf::close

.SH Synopsis
   std::basic_filebuf<CharT, Traits>* close();

   If a put area exist (e.g. file was opened for writing), first calls
   overflow(Traits::eof()) to write all pending output to the file, including any
   unshift sequences.

   If the most recently called function, out of underflow(), overflow(), seekpos(), and
   seekoff(), was overflow(), then calls std::codecvt::unshift(), perhaps multiple
   times, to determine the unshift sequence according to the imbued locale, and writes
   that sequence to file with overflow(Traits::eof()).

   Then, closes the file as if by calling std::fclose(), regardless of whether any of
   the preceding calls succeeded or failed.

   If any of the function calls made, including the call to std::fclose(), fails,
   returns a null pointer. If any of the function calls made throws an exception, the
   exception is caught and rethrown after closing the file. If the file is already
   closed, returns a null pointer right away.

   In any case, updates the private member variable that is accessed by is_open().

.SH Parameters

   \fI(none)\fP

.SH Return value

   this on success, a null pointer on failure.

.SH Notes

   close() is typically called through the destructor of std::basic_filebuf (which, in
   turn, is typically called by the destructor of std::basic_fstream.

.SH Example

    This section is incomplete
    Reason: no example

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

     DR    Applied to     Behavior as published              Correct behavior
   LWG 443 C++98      the file was written using    changed to overflow(Traits::eof())
                      overflow(EOF)
                      it was unclear how to handle
   LWG 622 C++98      the                           it is rethrown after closing the
                      exception thrown during       file
                      closing

.SH See also

   is_open      checks if the associated file is open
                \fI(public member function)\fP
   destructor   destructs a basic_filebuf object and closes the file if it is open
   \fB[virtual]\fP    \fI(virtual public member function)\fP

.SH Category:
     * Todo no example
